Inhalt Vorige Nächste Homepage
;============================================================================
; Diese Funktion stellt eine Alternative zu der Routine »DisplayAlert()« der
; intuition.library dar. Diese Funktion arbeitet grundsätzlich genauso wie
; die Intuition-Routine, bietet aber bei der Gestaltung des Alert-Textes noch
; die Möglichkeit, Schriftfarbe und Schriftstil Ihren Wünschen entsprechend
; zu wählen. Außerdem paßt sich diese Funktion ab OS 2.0 automatisch an die
; aktuellen »overscan.prefs« an, und landet so nicht, wie ihrer großen Intu-
; ition-Schwester schon öfter passiert, außerhalb der Bildröhre ?!
;----------------------------------------------------------------------------
; Synopsis:    button = ShowMsg (Param, Type, Height, ColorTab)
;                D0*              A0!   D0!     D1       D2!
;
; Eingaben:    A0 --> STRPTR auf den Parameter-String (s. Bemerkung)
;              D0 --> LONG   Alert-Typ, hiervon ist nur das MSB interessant:
;                             MSB (Bit 31) gesetzt DeadEnd, sonst Recovery
;                            Nach einem DeadEnd-Alert folgt ein System-Reset.
;              D1 --> ULONG  die Höhe des Alerts in Videozeilen (max. 200)
;              D2 --> APTR - auf eine optionale Farbtabelle (s. Bemerkung)
;                          - 0-PTR zur Verwendung der Standardfarben
;
; Ergebnis:    D0 --> BOOL - UPPER, wenn linke Maustaste gedrückt wurde,
;                                   od. L-ALT, od. L-AMIGA, od. beide L-Tasten
;                          - EQUAL, wenn rechte Maustaste gedrückt wurde,
;                                   od. R-ALT, od. R-AMIGA, od. beide R-Tasten
;                          - LOWER, Fehler (genaue Info mit LastError())
;
; Bemerkung:   Wenn Ihnen die Standardfarben nicht recht sind, dann können
;              Sie sie durch die Angabe einer Farbtabelle folgenden Formats
;              auf die von Ihnen gewünschten Werte ändern. Für alle Farben,
;              für die kein Eintrag in der Tabelle existiert, werden weiter-
;              hin die Standardfarben benutzt. Die Farbanteile können jeweils
;              Werte von 0-15 annehmen. Assembler-Programmierer können zur
;              einfacheren Erstellung der Tabelle das Macro SMCOLOR() aus
;              dem Includefile »extradefs.i« verwenden.
;               Für BASIC u. C/C++ sind hierfür ähnliche Funktionen bzw.
;              Macros in den entsprechenden Includefiles definiert. Bitte
;              entnehmen Sie die Beschreibung jener Macros bitte direkt aus
;              den entsprechenden Includefiles.
;
;              Aufbau der Farbtabelle:
;         +-->   UBYTE Nr. der Farbe (3-15)(0-2 werden ignoriert)
;         |    + UWORD Rotanteil*256 + Grünanteil*16 + Blauanteil
;         |    + UBYTE folgt ein weiterer Farbeintrag ?? (0=nein/1=ja)
;         |
;         |    wenn weiterer Farbeintrag=ja, dann --+
;         |                                         |
;         +-----------------------------------------+
;
;              Aufbau des Parameter-Stings:
;         +-->   UWORD X-Koordinate dieses Teilstrings ----\ (jeweils bezogen
;         |    + UBYTE Y-Koordinate dieses Teilstrings ----/ auf li./ob. Ecke)
;         |    + UBYTE neue SpecTextPrefs ?? (0=nein/1=ja)
;         |
;         |    wenn SpecTextPrefs=ja, dann
;         |      + UBYTE Nr. des für SpecText() zu verwendenden »MPen« \
;         |      + UBYTE Nr. des zu verwendenden »TLPen«   ____________/
;         |      + UBYTE Nr. des zu verwendenden »BRPen«  /    \  /
;         |      + UBYTE der zu verwendende SoftStyle   _/      \/
;         |      + UBYTE die zu verwendende Randmaske _/(s. SpecTextPrefs())
;         |    ansonsten folgt direkt
;         |
;         |    + TEXT  der auszugebende Text selbst mit abschließendem 0-Byte 
;         |    + UBYTE folgt ein weiterer Teilstring ?? (0=nein/1=ja)
;         |
;         |    wenn weiterer Teilstring=ja, dann --+
;         |                                        |
;         +----------------------------------------+
;
;            - Zur einfacheren Erstellung des Parameter-Strings können
;              Assembler-Programmierer die Macros SMTEXTP() u. SMTEXT()
;              aus dem mitgelieferten Includefile »extradefs.i« verwenden.
;               Für BASIC u. C/C++ sind hierfür ähnliche Funktionen bzw.
;              Macros in den entsprechenden Includefiles definiert. Bitte
;              entnehmen Sie die Beschreibung jener Macros bitte direkt aus
;              den entsprechenden Includefiles.
;
;              Tabelle der vorhandenen Standardfarben:
;               1 - hellgrau (nur für TLPen u. BRPen) 3 - rot(100%)
;               4 - grün(100%)     5 - blau(100%)     6 - gelb(100%)
;               7 - violett(100%)  8 - türkis(100%)   9 - weiß(100%)
;              10 - weinrot       11 - orange        12 - pink
;              13 - schilfgrün    14 - lila          15 - himmelblau
;
;              Die Farben 0-2 sind reserviert und werden automatisch in 3, 4
;              bzw. 5 umgewandelt, falls sie angegeben werden. Nur für TLPen
;              und BRPen ist zusätzlich auch Farbe 1 erlaubt. Als Styles und
;              Masken gelten die gleichen, wie bei SpecTextPrefs()
;
;              Bis zum Auftauchen der ersten Prefs im Parameterstring werden
;              folgende Defaults verwendet: MPen=7, alle anderen Einträge 0.
;
;              Die Erstellung des Textes erfolgt, wie Sie sicher schon er-
;              raten haben, via SpecText() dieser Library. Allerdings wer-
;              den die aktuellen Prefs Ihres Task zu genannter Funktion durch
;              die hier angegebenen Prefs in keinster Weise verändert.
;
;   ACHTUNG:   Diese Funktion darf NUR von vollwertigen DOS-Prozessen auf-
;   ¯¯¯¯¯¯¯¯   gerufen werden. Ein normaler EXEC-Task ist nicht ausreichend.
;
;              Nur OCS/ECS/AGA-Version:
;              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
;              Der von dieser Funktion benutzte RastPort hat KEINEN Layer,
;              d.h. Sie müssen selbst aufpassen, daß die Texte innerhalb des
;              RastPorts bleiben (640 x angegebene Höhe). Durch die Verwen-
;              dung von 16 Farben benötigt diese Funktion gegenüber der In-
;              tuition-Routine wesentlich mehr ChipRam (bei max. Höhe 64 KB).
;              Sollte diese Menge nicht mehr verfügbar sein, so bricht diese
;              Funktion mit einer entsprechenden Fehlermeldung ab.
;
;              Nur CGX-Version:
;              ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
;              Bei der CGX-Version kann es vorkommen, das der Mauszeiger nach
;              abschalten des Sprite-DMA (während der Anzeige der Message)
;              weiterhin sichtbar bleibt. Das hängt davon ab, ob die GfxBase
;              gültige SimpleSprite-Einträge für alle Hardware-Sprites hat.
;              Wenn Sie grundsätzlich eine CGX-Workbench verwenden, und Ihr
;              System hochfahren ohne vor Öffnung des WB-Screens irgendwelche
;              Ausgaben durch die Startup-Sequenz zu tätigen, dann sind o.g.
;              Einträge in der GfxBase immer uninitialisiert, und der Maus-
;              zeiger bleibt demzufolge immer sichtbar. Um dies zu ändern, muß
;              einfach mal ein normaler Amiga-Screen (PAL, NTSC, EURO36 etc.)
;              geöffnet werden, was dazu führt, daß die Einträge initialisiert
;              werden. Eine zweite Möglichkeit ist, einfach die ENV-Variable
;              KEEPAMIGAVIDEO von CyberGraphX zu aktivieren.
;
; Siehe auch:  SpecText(), SpecTextPrefs()
;============================================================================

Inhalt Vorige Nächste Homepage